package com.itheima.d8_generics_method;

import java.util.ArrayList;

public class Test2 {
    public static void main(String[] args) {
/*泛型不存在多态
        ArrayList<Person> list=new ArrayList<Student>();
  */

        //通过使用泛型的通配符，来表达泛型类型的任意性

        ArrayList<?> list1 = new ArrayList<Student>();
        ArrayList<?> list2 = new ArrayList<Teacher>();
        ArrayList<String> list3 = new ArrayList<>();
        ArrayList<Person> list4 = new ArrayList<Person>();
        ArrayList<Teacher> list5=new ArrayList<Teacher>();
        ArrayList<Student> list6=new ArrayList<Student>();

        //报错
        /*
        method1(list1);
        method1(list2);
        method1(list3);
        */
        method1(list4);
        method1(list5);
        method1(list6);
        //--------------------
      //  method2(list1);
      //  method2(list2);
      //  method2(list3);
        method2(list4);
      //  method2(list5);
        method2(list6);
    }

    /**
     * 泛型的上限
     * 只能接收Person以及其zi类的数据
     */
    public static void method1(ArrayList<? extends Person> list) {

    }

    /**
     * 泛型的下限
     * 只能接收Student以及其父类的数据
     */
    public static void method2(ArrayList<? super Student> list) {

    }
}
